As complex image processing systems, such as printers, facsimile machines, and electronic devices become more advanced, it is often necessary for original images having a scan format in one direction, to be transferred to an output device having a scan format in a different direction. As such, it has become increasingly necessary to perform rotation processing on an image prior to transferring the image to the output device. Given that the amount of system memory needed for rotation processing can often be great due to the size and content of the image being processed, conservation of memory during rotation has become an important consideration in image processing design.
An image processing system that has attempted to solve the problem of conservation of memory is described in U.S. Pat. No. 4,271,476 to Lotspiech ("the '476 patent"). In this system, a digital image can be rotated into a vertical scan format for printing. In an effort to conserve memory, a processor determines when a nominal amount of the image is present in a file, and then rotates and compresses the image. Adjacent portions of the image are thus rotated, compressed and stored in adjacent memory locations, where an electronic knitting of adjacent image boundaries takes place. The knitting process is the digital integration of a portion of compressed image data with adjacent portions. As described in this patent, when each portion of the image is integrated with other compressed portions, reconstruction of the entire rotated image can take place using a run length decoding technique.
Although memory is saved in the system of the '476 patent, there are problems associated with such a system. In particular, the knitting process can only be carried out on adjacent blocks, thus limiting the areas of memory in which compressed portions of the image can be stored. Moreover, the knitting technique cannot be used with other standard compression techniques such as Joint Bitonal Imaging Experts Group (JBIG), in which a current value of a compressed image block depends on data existing in memory in blocks that are not adjacent to the image block.
It is therefore an object of the present invention to provide a system for performing rotation of an image, that is capable of reducing the memory needed for rotation while providing flexibility in the compression techniques that can be used to reconstruct the image.